From 6b16c795babec299ed8f0ff31fb758ddaac1eafa Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Tue, 16 Sep 2014 04:17:01 +0200 Subject: [PATCH] iconview: Unset prelit item in leave-notify We don't want to keep a prelit item when the mouse cursor is elsewhere. --- gtk/gtkiconview.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/gtk/gtkiconview.c b/gtk/gtkiconview.c index bdafff7ce2..e1462ee082 100644 --- a/gtk/gtkiconview.c +++ b/gtk/gtkiconview.c @@ -156,6 +156,8 @@ static gboolean gtk_icon_view_draw (GtkWidget cairo_t *cr); static gboolean gtk_icon_view_motion (GtkWidget *widget, GdkEventMotion *event); +static gboolean gtk_icon_view_leave (GtkWidget *widget, + GdkEventCrossing *event); static gboolean gtk_icon_view_button_press (GtkWidget *widget, GdkEventButton *event); static gboolean gtk_icon_view_button_release (GtkWidget *widget, @@ -357,6 +359,7 @@ gtk_icon_view_class_init (GtkIconViewClass *klass) widget_class->size_allocate = gtk_icon_view_size_allocate; widget_class->draw = gtk_icon_view_draw; widget_class->motion_notify_event = gtk_icon_view_motion; + widget_class->leave_notify_event = gtk_icon_view_leave; widget_class->button_press_event = gtk_icon_view_button_press; widget_class->button_release_event = gtk_icon_view_button_release; widget_class->key_press_event = gtk_icon_view_key_press; @@ -1307,6 +1310,7 @@ gtk_icon_view_realize (GtkWidget *widget) GDK_SCROLL_MASK | GDK_SMOOTH_SCROLL_MASK | GDK_POINTER_MOTION_MASK | + GDK_LEAVE_NOTIFY_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_KEY_PRESS_MASK | @@ -2058,6 +2062,25 @@ gtk_icon_view_motion (GtkWidget *widget, return TRUE; } +static gboolean +gtk_icon_view_leave (GtkWidget *widget, + GdkEventCrossing *event) +{ + GtkIconView *icon_view; + GtkIconViewPrivate *priv; + + icon_view = GTK_ICON_VIEW (widget); + priv = icon_view->priv; + + if (priv->last_prelight) + { + gtk_icon_view_queue_draw_item (icon_view, priv->last_prelight); + priv->last_prelight = NULL; + } + + return FALSE; +} + static void gtk_icon_view_remove (GtkContainer *container, GtkWidget *widget) -- 2.30.2